home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / Software / Servis / FFE / MOD.SWG / 0065_Digital Music Format DMF Effects.pas < prev    next >
Pascal/Delphi Source File  |  1997-05-11  |  11KB  |  410 lines

  1. ───────────────────────────────────────────────────
  2. DELUSION DIGITAL MUSIC EFFECTS V0.18ß1 (25/12/93)
  3. ───────────────────────────────────────────────────
  4.  
  5.  
  6. Oki sorry dudes, some effect stuff is still in German....
  7. English dox will be ready soon, no prob... but try thiz,
  8. for help call us.....
  9.  
  10.  
  11. GLOBAL TRACK
  12. ─────────────
  13.  
  14. Nr.   Name                 DATA          Default
  15.  
  16. 0*  No Global Data          ---             ---
  17.  
  18.  
  19. 1*  Set Tick Frame Speed   DATA             33
  20.  
  21. Setzt die Anzahl der Ticks pro Sekunde auf (DATA/4)+1 Hz.
  22. Dadurch ist die Geschwindigkeit unabhängig vom aktuell gesetzten
  23. Beat.
  24.  
  25.  
  26. 2*  Set BPM Speed          DATA            125
  27.  
  28. Setzt die BPM Geschwindigkeit auf DATA in BPM.
  29. Die effektive Tickspeed ist abhängig vom momentan gesetztem Beat.
  30. Ist Beat=0 wird Tick Frame Speed benützt.
  31.  
  32. Beats per Minute "BPM"
  33. ───────────────────────
  34.  
  35. Def.: TICK = eine Zeile im Pattern
  36.  
  37. Def.: CLICK = ein Effekt Click. Clicks werden zwischen den Ticks ausgeführt um
  38.               die Effekte zu "berechnen". Die Anzahl der Clicks wird vom
  39.               Player automatisch an die aktuelle Speed angepasst.
  40.  
  41. Def.: BPM = Anzahl der Beats [Viertel Noten/Quarter Notes] in einer Minute.
  42.  
  43. Bsp. 3 Beats Per Measure, 4 Ticks per Beat (=3/4 Takt)
  44.  
  45.      ┌─       ┌─01 Tick (hier 1 Tick = 1/16 Note ((1/4 Note)/4 8-) )
  46.      │        │  .
  47.      │        │  . zwischen jedem Tick werden die Effect "Clicks"
  48.      │        │  . ausgeführt
  49.      │        │  .
  50.   1  │   BEAT │ 02 Tick
  51.      │        │ 03  "
  52.   T  │        └─04  "
  53.   A  │        ┌─05
  54.   K  │   BEAT │ 06
  55.   T  │        │ 07
  56.      │        └─08
  57.      │        ┌─09
  58.      │   BEAT │ 10
  59.      │        │ 11
  60.      └─       └─12
  61.  
  62.  
  63. Bsp. Bei einem 3/4 Takt, 8 Ticks per Beat (1 Tick = 1/32 Note) mit 120 BPM
  64.      und 4 Effekt Clicks muss die Musik Routine mit:
  65.  
  66.        (120 BPM * 8 Ticks * 4 Clicks) / 60 sec = 64 Hz aufgerufen werden.
  67.  
  68.  
  69. 3*  Set Beat              HI│LOW           Pattern Header
  70.  
  71. [HI Data] = Ticks per Beat
  72. [LOW Data] = Beats per Measure
  73.  
  74. Hinweis: Jedes Pattern hat im Header einen default Beat gespeichert dieser
  75.          Effekt verändert den Beat nur im aktuellen Pattern.
  76.  
  77.  
  78. 4*  Tick Delay            HI│LOW
  79.  
  80. HI Data = Anzahl der Ticks die gewartet werden bis der nächste Tick
  81.          "verarbeitet" wird.
  82. LOW Data = 1/16 Ticks die gewartet werden bis zum nächste Tick.
  83.  
  84. Die Effekte werden während der Pause nicht upgedated...
  85.  
  86. "Stotter Effekt" ;-)
  87.  
  88.  
  89. 5*  Set External Flag      DATA
  90.  
  91. Übergibt DATA als external readable Flag
  92.  
  93.  
  94. -   Set Global Volume
  95.  
  96. -   Send Midi Command  DATA
  97.  
  98.  Sendet DATA an ein Midi Device.
  99.  
  100. -   Slide Speed Up (TicksPerSecond/BPM)
  101.  
  102. -   Slide Speed Down (TPS/BPM)
  103.  
  104. -   Debug Flag (Stop die Music bis zu einem externen restart)
  105.  
  106. -   Set Filters
  107.  
  108. (- Call External Function)
  109.  
  110.  
  111.  
  112. INSTRUMENT EFFECTS
  113. ───────────────────
  114.  
  115. 0*  No Effect Data         ---             ---
  116.  
  117.  
  118. 1*  Stop Sample            DATA
  119.  
  120. Das Sample wird gestoppt. Unterschied zu Note Off das Sample spielt nicht
  121. weiter, gesetzte Noten nach dem Sample Stop sind nicht zu hören.
  122.  
  123. (DATA gibt an wieviel 1/256 Ticks vezögert wird bis das Sample gestoppt wird,
  124.  nicht implementiert, DATA=0 ! )
  125.  
  126.  
  127. 2*  Stop Sample Loop
  128.  
  129. Löscht das Loop Flag, das Sample klingt aus. Das Sample wird bis zu Sample
  130. Ende gespielt...
  131.  
  132.  
  133. 3*  Instrument Volume Override/  DATA
  134.     Restart Sample
  135.  
  136. Spielt das Sample von vorne, unterschied zu einem normalen Sample Trigger ist
  137. daß das Instrument Volume nicht übernommen wird.
  138. Wenn eine Sample Nr. im Sample Slot steht wird dies "restartet", das Volume
  139. aber nicht auf Instrument Volume gesetzt.
  140.  
  141. Wird unter anderem benötigt um MOD Einträge mit Note aber ohne Instrument Nr.
  142. zu konvertieren (z.b. Mayday_r.mod).
  143.  
  144.  
  145. 4*  Sample Delay/          HI Nibble│LOW Nibble
  146.     Trigger Sample
  147.  
  148. [HI Nibble] = 1/16 Ticks
  149. [LOW Nibble] = not used
  150.  
  151. HI Nibble gibt an wieviel 1/16 Ticks vezögert wird bis das Sample getrigerd
  152. wird. Wenn kein Sample Nr. im Sample Slot steht wird das zuletzt gesetzte
  153. Sample Retriggerd.
  154.  
  155.  
  156. 5*  Tremolo Retrig Sample  HI Nibble│LOW Nibble
  157.     "Pro Tracker Retrig Note"
  158.  
  159. [HI Nibble] = 1/16 Ticks
  160. [LOW Nibble] = not used
  161.  
  162. Das Sample wird mit einer Periodenlänge von HI Nibble/16 Ticks retriggert.
  163. Für sehr schnelle Anschläge z.b. HiHats ;-)
  164.  
  165.  
  166. 6*  Set Sample Offset      DATA
  167.  
  168. [DATA] = Sample Offset in 256 Byte Blocks
  169.  
  170. Setzt das Sample Offset eines spielenden Samples auf die Position DATA*256.
  171. Falls der Wert grösser ist wie das Sample lang wird der Effekt ignoriert!
  172. Es können also nur die ersten 64 KB des Samples addressiert werden...
  173. wird vorerst benötigt um MOD Effekte zu konvertieren, sollte später durch
  174. einen sinnvolleren Parameter erneuert werden...
  175.  
  176.  
  177. 7*  Invert (Tekkkno) Sample play direction   DATA
  178.  
  179. Invertiert die Spielrichtung des Samples. DATA muss 0 sein!
  180.  
  181. {Future:
  182. DATA = 0 Sample Spielrichtung invertieren
  183.        1 Sample von momentaner Position rückwärts spielen
  184.        2 Sample  "       "         "    vorwärts  spielen }
  185.  
  186.  
  187. 8   Rewind Sample          DATA
  188.  
  189.   Invertiert Sample Abspielrichtung nur für aktuellen Tick.
  190.  
  191.  
  192. -  Reffer B. (Reverb)
  193.  
  194. -  Invert Sample
  195.  
  196.   Spielt Sample von Hinten nach vorne, Loops werden auch herum gedreht.
  197.  
  198. -  Distortion
  199.  
  200. -  DJ Scratch
  201.  
  202.   Scratched das Sample durch sehr schnelles vor und zurück spielen.
  203.  
  204. -  Jump Around
  205.  
  206.   Spielt randommässig Sampleteile. Zap-Effekt
  207.  
  208. -  Tune Up Instrument
  209.  
  210.   Verstimmt das Sample/Instrument
  211.  
  212. -  Tune Down Instrument
  213.  
  214.   Verstimmt das Sample/Instrument
  215.  
  216.  
  217.  
  218. NOTE EFFECTS
  219. ─────────────
  220.  
  221. 0*  No Effect Data         ---            ---
  222.  
  223.  
  224. 1*  Note Finetune         SIGNED
  225.  
  226. [SIGNED] = Note um +/- 1/128 Halbtonschritte fein einstellen
  227.  
  228.  
  229. 2*  Note Delay             DATA
  230.  
  231. [DATA] = 1/256 Tick
  232.  
  233. Der Notewert wird nach DATA/256 Ticks gesetzt. Die Noteänderung wird damit
  234. verzögert. Eine Verzögerung des Notenanschlags bewirkt "Sample Delay".
  235.  
  236.  
  237. 3*  Arpeggio              HI│LOW
  238.  
  239. [HI Data] = Halbtonschritte, über Grundnote
  240. [LOW Data] = Halbtonschritte, über Grundnote
  241.  
  242. Die Note wird schnell (jedem Effekt Click) zwischen Note, Note+HI Data und
  243. Note+LOW Data umgeschaltet.
  244.  
  245.  
  246. 4*  Portamento Up          DATA             0
  247.  
  248. Frequenz nach oben portamentieren [DATA] = 1/16 Halbtonschritte die bis
  249. zum nächsten Tick nach oben geslidet werden.
  250. Die Portamento Up Grenze liegt bei C-9.
  251.  
  252.  
  253. 5*  Portamento Down        DATA             0
  254.  
  255. Frequenz nach unten portamentieren [DATA] = 1/16 Halbtonschritte die bis
  256. zum nächsten Tick nach unten geslidet werden.
  257. Die Portamento Down Grenze liegt bei C-0.
  258.  
  259.  
  260. 6*  Portamen to Note       DATA             0
  261.  
  262. Frequenz in Richtung der letzt gesetzten "Buffer Note" sliden.
  263. [DATA] = 1/16 Halbtonschritte die bis zum nächsten Tick geslidet werden.
  264.  
  265.  
  266. 7*  Scratch to Note        DATA             ---
  267.  
  268. DATA = MIDI Note Value
  269.  
  270. Der aktuellem Notewert wird auf DATA bis zum Ende des aktuellen Ticks geslidet.
  271. Für sehr schnelle slides über mehrere Oktaven, die zwischenstuffen sind
  272. Halbtonschritte...
  273.  
  274.  
  275. 8*  Vibrato Sin           HI│LOW           ---
  276.  
  277. HI Data = Speed-1  Vibrato Periodenlänge in Ticks
  278.  
  279.           Bsp.: HI_Data=0 --> Speed 1, bedeuted:
  280.                 1 Sinus durchlauf bis zum nächsten Tick
  281.                 HI_Data=4 --> Speed 5, bedeuted:
  282.                 1/5 Sinus durchlauf bis zum nächsten Tick
  283.  
  284. LOW Data = Amplitude-1  Vibrato Amplitude in 1/8 Halbtonschritte
  285.  
  286.            Bsp.: LOW Data = 1 --> Amplitude=4, bedeuted:
  287.                  Amplitude=2*1/4 Halbtonschritt = 1/2 Halbtonschritt
  288.  
  289.                  Die Grundnote wird mit +/- 1/2 Halbtonschritt ausgelenkt.
  290.  
  291.                  (max. Amplitude = +/- 2 Halbtonschritte 8-) )
  292.  
  293.  
  294. 9*  Vibrato /\/\          HI│LOW           ---
  295.  
  296. Note wird mit einem Dreieck Signal moduliert.
  297. Effekt Parameter siehe Vibrato Sin.
  298.  
  299.  
  300. 10  Vibrato Sqaure        HI│LOW           ---
  301.  
  302. Note wird mit einem Rechteck Signal moduliert.
  303. Effekt Parameter siehe Vibrato Sin.
  304.  
  305.  
  306. 11  Note Tremolo          HI│LOW           ---
  307.  
  308. HI Data = Ticks/32 Anfangs Notenfrequenz
  309. LOW Data = Ticks/32 Note Off
  310.  
  311.  
  312. 12* Note Cut              HI│LOW
  313.  
  314. [HI] = 1/16 Ticks
  315. [LOW] = not used
  316.  
  317. Die Note geht nach HI Nibble/16 Ticks auf Note Off.
  318.  
  319.  
  320.  
  321. YO! YO! YO!
  322.  Die Vibrato, Tremolo und Arpeggio Speed sollten zusätzlich über eine feste
  323.  Frequenz (Notenfrequenzen) einstellbar werden. Da Speed Angaben über Ticks
  324.  vom aktuellen Tickspeed abhängig sind ... für eine harmonischere Modulation
  325.  währen feste Frequenzen besser.
  326.  
  327.  
  328.  
  329. VOLUME EFFECTS
  330. ───────────────
  331.  
  332. 0*  No Effect Data         ---            ---
  333.  
  334.  
  335. 1*  SlideUP               DATA            ---
  336.  
  337. Volume wird nach oben portamentieren. DATA gibt an um wieviel Einheiten
  338. bis zum nächsten Tick geslidet werden soll.
  339.  
  340.  
  341. 2*  SlideDN               DATA            ---
  342.  
  343. Volume wid nach unten portamentieren. (siehe SlideUP)
  344.  
  345.  
  346. 3   Volume Tremolo        DATA            ---
  347.  
  348. HI Data = Ticks/32 Anfangs Volumewert
  349. LOW Data = Ticks/32 Volume muted
  350.  
  351.  
  352. 4   Volume Vibrato Sin    HI Nibble│LOW Nibble
  353.     "MOD Tremolo"
  354.  
  355. HI Nibble = Speed-1  Vibrato Periodenlänge in Ticks
  356.  
  357.           Bsp.: HI_Data=0 --> Speed 1, bedeuted:
  358.                 1 Sinus durchlauf bis zum nächsten Tick 8-)
  359.  
  360. LOW Nibble = Amplitude-1  Vibrato Amplitude in (aktuelles Volume)/32 Einheiten
  361.  
  362.            Bsp.: aktuelles Volume = 128
  363.                  LOW Data = 2 --> Amplitude=128/32*3=+/-12 Volumeeinheiten
  364.                  bedeutet:
  365.  
  366.                  Die Lautstärke wird zwischen 128 und 104 Einheiten mit
  367.                  einer Sinusschwingung moduliert.
  368.  
  369.                  (max. von 0-255 8-) )
  370.  
  371.  
  372. 5   Volume Vibrato /\/\   DATA
  373.  
  374. HI Data = Ticks/4  Vibrato Periodenlänge
  375. LOW Data = Ticks Vibrato Amplitude
  376.  
  377.  
  378. 6   Volume Vibrato Sqaure DATA             ---
  379.  
  380. HI Data = Ticks/4  Vibrato Periodenlänge
  381. LOW Data = Ticks Vibrato Amplitude
  382.  
  383.  
  384. 7*  Set Balance           DATA
  385.  
  386. DATA= 0=ganz Links, 255=ganz Rechts, 128=Mitte
  387.  
  388.  
  389. 8*  Slide Balance Left
  390.  
  391. Balance wird nach links geslidet. DATA gibt an um wieviel Einheiten
  392. bis zum nächsten Tick geslidet werden soll.
  393.  
  394.  
  395. 9*  Slide Balance Right
  396.  
  397. Balance wird nach rechts geslidet. DATA gibt an um wieviel Einheiten
  398. bis zum nächsten Tick geslidet werden soll.
  399.  
  400.  
  401. 10  Vibrato Balance Left/Right
  402.  
  403. HI Data = Ticks/4  Vibrato Periodenlänge
  404. LOW Data = Ticks Vibrato Amplitude
  405.  
  406.  
  407. * Effekte funktionsfähig
  408.  
  409. END.
  410.